Loca Como Tu Madre¶

Análise das operações Jul/22 a Jan/23¶

cod_produto produto quantidade valor_unit total_item data_lanc atendente venda vendedor data_venda data_recebimento data mes hora minuto hora_minuto data_normal periodo_do_dia dia_da_semana tipo_de_dia
2 421 BURRATA COM JAMON E VERDE 1 49.0 49.0 2022-07-30 20:03:12 JESSICA 981201 JESSICA 2022-07-30 20:02:56 2022-07-30 22:58:00 2022-07-30 7 20 3 20:03:12 2022-07-30 noite sábado FS
3 41 PORÇAO NACHOS 1 15.0 15.0 2022-07-30 20:17:28 JESSICA 981201 JESSICA 2022-07-30 20:02:56 2022-07-30 22:58:00 2022-07-30 7 20 17 20:17:28 2022-07-30 noite sábado FS
4 97 JARRA SANGRIA LOCA SUMMER 1 55.0 55.0 2022-07-30 20:22:20 GABRIEL 981201 JESSICA 2022-07-30 20:02:56 2022-07-30 22:58:00 2022-07-30 7 20 22 20:22:20 2022-07-30 noite sábado FS
5 406 LULAS EMPANADAS 1 38.0 38.0 2022-07-30 21:22:51 JESSICA 981201 JESSICA 2022-07-30 20:02:56 2022-07-30 22:58:00 2022-07-30 7 21 22 21:22:51 2022-07-30 noite sábado FS
6 2 RISOTINHO DE CAMARÃO 1 52.0 52.0 2022-07-30 22:26:07 JESSICA 981201 JESSICA 2022-07-30 20:02:56 2022-07-30 22:58:00 2022-07-30 7 22 26 22:26:07 2022-07-30 noite sábado FS

Exploração dos Dados¶

O faturamento no período foi de: R$ 884024.4

Observações¶

Alguns itens chamaram a atenção:

Eventos: foram identificados 7 registros de eventos. No entanto, como não conseguimos determinar quais itens foram vendidos nessas ocasiões, optamos por excluí-los da análise. Considerando que o escopo do trabalho é analisar os produtos vendidos, horário e dia, bem como sua quantidade, fica inviável realizar um estudo sem essas informações;

Couvert artístico: seria interessante obter informações sobre os artistas que se apresentaram nesses horários, pois poderíamos investigar quais deles atraem um público maior e que permanece mais tempo no estabelecimento;

Os dados também apresentaram dois tipos de entrada que não estão especificadas: "item extra" (73 registros) e "porção extra" (36 registros). Portanto, esses registros também serão retirados da análise.

Abaixo segue uma tabela com o Ranking dos produtos mais vendidos, já considerando-se essas exclusões

Algumas métricas importantes¶

Após a filtragem dos regitros conforme a explicação acima, teos algumas métricas para apresentar:

O faturamento desconsiderando-se os eventos no período foi de: R$ 865321.6
O número de diferentes itens vendido pelo estabelecimento é: 283
O número médio de itens vendidos em um dia é: 
226.58
A média de itens por venda é: 8.60 itens
A média de itens por venda e por período do dia é: 
  Período  Média
2   tarde  11.29
1   noite   8.59
0   manhã   2.99

Quantidade de itens vendidos por dia ao longo do perído analisado

Observamos que durante a Copa do Mundo houve uma queda sinificativa do faturamento do estabelecimento

data_venda total_item quantidade
0 2022-07 6671.51 254
1 2022-08 107117.31 4569
2 2022-09 116529.20 5317
3 2022-10 138224.57 6616
4 2022-11 138933.29 6950
5 2022-12 168311.14 8425
6 2023-01 189534.58 9559
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/tmp/ipykernel_406/1532841142.py in <module>
      1 fig_02a = px.bar(fatura_grouped_by_motnh, x='data_venda', y='total_item')
----> 2 iplot(fig_02a)

~/.local/lib/python3.10/site-packages/plotly/offline/offline.py in iplot(figure_or_data, show_link, link_text, validate, image, filename, image_width, image_height, config, auto_play, animation_opts)
    390 
    391     # Show figure
--> 392     pio.show(
    393         figure,
    394         validate=validate,

~/.local/lib/python3.10/site-packages/plotly/io/_renderers.py in show(fig, renderer, validate, **kwargs)
    386 
    387     # Mimetype renderers
--> 388     bundle = renderers._build_mime_bundle(fig_dict, renderers_string=renderer, **kwargs)
    389     if bundle:
    390         if not ipython_display:

~/.local/lib/python3.10/site-packages/plotly/io/_renderers.py in _build_mime_bundle(self, fig_dict, renderers_string, **kwargs)
    294                         setattr(renderer, k, v)
    295 
--> 296                 bundle.update(renderer.to_mimebundle(fig_dict))
    297 
    298         return bundle

~/.local/lib/python3.10/site-packages/plotly/io/_base_renderers.py in to_mimebundle(self, fig_dict)
     93 
     94         json_compatible_fig_dict = json.loads(
---> 95             to_json(fig_dict, validate=False, remove_uids=False)
     96         )
     97 

~/.local/lib/python3.10/site-packages/plotly/io/_json.py in to_json(fig, validate, pretty, remove_uids, engine)
    197             trace.pop("uid", None)
    198 
--> 199     return to_json_plotly(fig_dict, pretty=pretty, engine=engine)
    200 
    201 

~/.local/lib/python3.10/site-packages/plotly/io/_json.py in to_json_plotly(plotly_object, pretty, engine)
    121         from _plotly_utils.utils import PlotlyJSONEncoder
    122 
--> 123         return json.dumps(plotly_object, cls=PlotlyJSONEncoder, **opts)
    124     elif engine == "orjson":
    125         JsonConfig.validate_orjson()

/usr/lib/python3.10/json/__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
    236         check_circular=check_circular, allow_nan=allow_nan, indent=indent,
    237         separators=separators, default=default, sort_keys=sort_keys,
--> 238         **kw).encode(obj)
    239 
    240 

~/.local/lib/python3.10/site-packages/_plotly_utils/utils.py in encode(self, o)
     57         """
     58         # this will raise errors in a normal-expected way
---> 59         encoded_o = super(PlotlyJSONEncoder, self).encode(o)
     60         # Brute force guessing whether NaN or Infinity values are in the string
     61         # We catch false positive cases (e.g. strings such as titles, labels etc.)

/usr/lib/python3.10/json/encoder.py in encode(self, o)
    197         # exceptions aren't as detailed.  The list call should be roughly
    198         # equivalent to the PySequence_Fast that ''.join() would do.
--> 199         chunks = self.iterencode(o, _one_shot=True)
    200         if not isinstance(chunks, (list, tuple)):
    201             chunks = list(chunks)

/usr/lib/python3.10/json/encoder.py in iterencode(self, o, _one_shot)
    255                 self.key_separator, self.item_separator, self.sort_keys,
    256                 self.skipkeys, _one_shot)
--> 257         return _iterencode(o, 0)
    258 
    259 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,

~/.local/lib/python3.10/site-packages/_plotly_utils/utils.py in default(self, obj)
    134             except NotEncodable:
    135                 pass
--> 136         return _json.JSONEncoder.default(self, obj)
    137 
    138     @staticmethod

/usr/lib/python3.10/json/encoder.py in default(self, o)
    177 
    178         """
--> 179         raise TypeError(f'Object of type {o.__class__.__name__} '
    180                         f'is not JSON serializable')
    181 

TypeError: Object of type Period is not JSON serializable

Analisando a venda de itens¶

Agora iremos analisar mais detalhadamente a distribuição na venda de cada item proporcionalmente as vendas totais

Observações

Os itens mais vendidos por período do dia¶

OBSERVAÇÕES

Os itens mais vendidos mês a mês